package cn.com.chengmandian.bike.service;

import cn.com.chengmandian.bike.model.EbDeviceBike;
import cn.com.chengmandian.bike.model.EbPriceRule;
import cn.com.chengmandian.bike.model.EbRideClose;
import cn.com.chengmandian.bike.model.EbRideOrder;
import cn.com.chengmandian.core.web.pojo.BikeAreaParam;
import com.baomidou.mybatisplus.extension.service.IService;

import java.math.BigDecimal;

/**
 * <p>
 * 电单车运营-订单停车关锁行为记录 服务类
 * </p>
 *
 * @author AutoGenerator
 * @since 2024-10-26
 */
public interface IEbRideCloseService extends IService<EbRideClose> {

    EbRideClose getByOrderCode(String orderNo);

    // 运维结束订单
    void opsCloseOrder(EbRideClose rideClose, Integer orderId, Integer closeReason, Integer opsUserId, String opsUserName, BigDecimal customOrderMoney);

    // 运营端结束订单
    void agentCloseOrder(EbRideClose rideClose, Integer orderId, Integer agentUserId, String agentUserName, BigDecimal customOrderMoney);

    // 系统端结束订单
    void sysCloseOrder(EbRideClose rideClose, Integer orderId, String systemName);

    // 一键还车
    void bikeCloseOrder(EbRideClose rideClose, Integer bikeId);

    void closeCheck(EbRideClose rideClose, EbRideOrder rideOrder, Integer isDispatch, Integer payHelmetMoney, Integer aiPhotosPass, boolean superRole,
                    Integer closeUserType, Integer closeUserId, String closeUserName, BigDecimal memberLng, BigDecimal memberLat);

    void checkCloseBike(Boolean superRole, EbRideOrder rideOrder, EbRideClose rideClose, EbDeviceBike deviceBike, Integer isDispatch, Integer payHelmetMoney, Integer aiPhotosPass, Integer id, String name);

    void checkStopBikeStandard(Boolean superRole, EbRideClose rideClose, EbDeviceBike deviceBike, BikeAreaParam bikeAreaParam, EbPriceRule priceRule,
                               Integer isDispatch, Integer aiPhotosPass);

    void handleDispatchReduceMoney(Boolean superRole, EbRideClose rideClose, EbRideOrder rideOrder, EbPriceRule priceRule);
}
